/**
 * API模块统一导出文件
 * 提供所有API服务的统一入口点
 * 这个文件是API模块的主入口，集中导出所有可用的服务和工具
 */

// 导出基础配置和常量
// 这些是API模块的核心配置，其他模块可以直接使用
import { authService } from './services/auth-service.js';

export { 
  API_CONFIG,      // API基础配置对象
  API_ENDPOINTS,   // API端点路径配置
  HTTP_STATUS,     // HTTP状态码常量
  ERROR_MESSAGES   // 错误消息配置
} from './config.js';

// 导出HTTP客户端
// 提供底层的HTTP请求功能
export { 
  apiClient,  // 单例API客户端实例
  ApiClient   // API客户端类定义
} from './client.js';

// 导出基础服务类
// 提供通用的CRUD操作方法
export { BaseService } from './base-service.js';

// 导出业务服务类
// 每个服务类都继承自BaseService，提供特定业务的数据操作
export { 
  projectService,  // 项目服务单例实例
  ProjectService   // 项目服务类定义
} from './services/project-service.js';

export { 
  productService,  // 商品服务单例实例
  ProductService   // 商品服务类定义
} from './services/product-service.js';

export { 
  taskService,     // 任务服务单例实例
  TaskService      // 任务服务类定义
} from './services/task-service.js';

export { 
  htmlCodeService, // HTML代码服务单例实例
  HtmlCodeService  // HTML代码服务类定义
} from './services/html-code-service.js';

// 导出认证服务
export { authService } from './services/auth-service.js';

// 创建服务集合对象
// 将所有服务实例统一管理，方便使用和维护
export const apiServices = {
  // 基础服务
  client: apiClient,     // HTTP客户端实例
  
  // 业务服务实例
  projects: projectService,  // 项目服务实例
  products: productService,  // 商品服务实例
  tasks: taskService,        // 任务服务实例
  htmlCodes: htmlCodeService, // HTML代码服务实例
  
  // 认证服务
  auth: authService,
};

// 默认导出对象
// 提供API模块的主要功能，作为整个模块的统一接口
export default {
  config: API_CONFIG,      // 配置对象
  client: apiClient,       // 客户端实例
  services: apiServices,   // 服务集合
};
